#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QDebug>
#include <QMessageBox>
#include <QFile>
#include <QTextCodec>
#include <QFileInfo>
#include <QDateTime>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //点击按钮弹出选择文件对话框
    connect(ui->btn_selectFile, &QPushButton::clicked, this, [=](){
        QString filePath = QFileDialog::getOpenFileName(this, "打开文件", "C:\\chenpeng");

        if(filePath.isEmpty()){
            QMessageBox::warning(this, "警告", "请选择文件");
            return;
        }

        qDebug() << "选择的文件是:" << filePath;
        ui->lineEdit_filePath->setText(filePath);

        //文本编码格式类
        //QTextCodec * codec = QTextCodec::codecForName("gbk");

        //读取文件
        readFile(filePath);

        //写文件
        //writeFile(filePath);

        //读取文件信息
        readFileInfo(filePath);


    });
}

//读取文件信息
void Widget::readFileInfo(QString & filePath){
    QFile file(filePath);

    QFileInfo fileInfo(file);

    qDebug() << "baseName=" << fileInfo.baseName()
             << ", filePath=" << fileInfo.filePath()
             <<", size=" << fileInfo.size()
            << ", createdTime=" << fileInfo.created().toString("yyyy-MM-dd hh:mm:ss")
            << ", 最后修改日期=" << fileInfo.lastModified().toString("yyyy-MM-dd hh:mm:ss");

}

void Widget::writeFile(QString & filePath){
    //将文件内容读取到文本框中
    QFile file(filePath);
    //指定打开方式
    //QIODevice::Append追加的方式写文件
    file.open(QIODevice::Append);

    file.write("aaaaa");
    file.close();
}

void Widget::readFile(QString & filePath){
    //将文件内容读取到文本框中
    QFile file(filePath);
    //指定打开方式
    file.open(QIODevice::ReadOnly);

    //QT默认支持的格式是UTF-8
    //QByteArray byteArray = file.readAll();
    //QByteArray byteArray = file.readLine();

    while(!file.atEnd()){
        QByteArray byteArray = file.readLine();
        ui->textEdit_FileContent->append(byteArray);
    }


    //ui->textEdit_FileContent->setText(byteArray);
    //ui->textEdit_FileContent->setText(codec->toUnicode(byteArray));

    file.close();
}

Widget::~Widget()
{
    delete ui;
}
